package demo3;

/**
 * 删除并获得点数 740
 */
public class test3 {
    public int deleteAndEarn(int[] nums) {
        // 预处理
        int n = 10001;
        int[] arr = new int[n];
        for(int x:nums){
            arr[x] += x;
        }
        // 创建dp表
        int[] f = new int[n];
        int[] g = new int[n];
        // 初始化
        f[0] = arr[0];
        g[0] = 0;
        for (int i = 1; i < n; i++) {
            f[i] = g[i - 1] + arr[i];
            g[i] = Math.max(g[i - 1], f[i-1]);
        }
        return Math.max(f[n-1], g[n-1]);
    }
}
